SUMMARY:
You'll joker this to decide whether to check if the bit is on or off and remove it if it isn't.


200ffcfc 8ded0000 lw t5, $0000(t7)            Load a stored result's address.
200ffd00 100d0072 beq zero, t5, $000ffecc     If the address is 0, there are no more results.
200ffd04 91ea0004 lbu t2, $0004(t7)           Load the stored result's old bit/bits.
200ffd08 91ab0000 lbu t3, $0000(t5)           Load the stored result's current bit/bits.
200ffd0c 014b6024 and t4, t2, t3		    Checks whether the address's bit/bits that you are looking for are actually on or off.
{
    OR CHECK IF BITS ARE OFF
200ffd10 55800072 bnel t4, zero, $000ffee4    Remove the result if the bits aren't off.
    OR CHECK IF BITS ARE ON
200ffd10 554c0072 bnel t2, t4, $000ffee4      Remove the result if the bits aren't on.  I didn't make a mistake, it is supposed to compare t2 and t4.
}

200ffd18 100afff8 beq zero, t2, $000ffcfc     This is here to check if a result was removed.  If a result was removed, then t2 should be 0 since that was the last written address value, and this will cause it to check the next result which shifted down 1 result.  If no result was deleted, the address won't be 0 and result will stay.  It doesn't save a value or anything, it's a bit and all it needs to do is check if is on or off.

200ffd20 1000fff6 beq zero, zero, $000ffcfc   Check the next result.
200ffd24 25ef0008 addiu t7, t7, $0008         Adds 8 to where the results are, so it can check the next result.